
public class Alimento {
	
	//atributos de instancia
	private String nombreAlim, contVita, contMine;;
	private double contLipi, contHidr, contProt, contCalo;
	private boolean origAnim;
	
	//constructor que recibe solo nombre del alimento
	public Alimento (String nombre) {
		this.nombreAlim = nombre;
	}
	
	//constructor que recibe todos los atributos del alimento
	public Alimento (String nombre, double lipi, double hidr, double prot, boolean origen, String vita, String mine) {
		this.nombreAlim = nombre;
		this.contLipi = lipi;
		this.contHidr = hidr;
		this.contProt = prot;
		this.origAnim = origen;
		this.contVita = vita;
		this.contMine = mine;
	}
	
	//metodo que calcula si un alimento es dietetico
	public boolean esDietetico () {
		boolean dietetico;
		
		//si tiene menos de 20% de lipidos y no es bajo en vitaminas sera dietetico
		if (this.contLipi < 20 && !contVita.equals("B")) {
			dietetico = true;
		}
		else {
			dietetico = false;
		}
		
		//retorna boolean
		return dietetico;
	}
	
	//metodo que muestra todos los atributos de un alimento
	public void muestraAlimento () {
		System.out.println("Nombre: "+this.nombreAlim);
		System.out.println("Contenido en lipidos: "+this.contLipi+"%");
		System.out.println("Contenido en hidratos: "+this.contHidr+"%");
		System.out.println("Contenido en proteinas: "+this.contProt+"%");
		if (this.origAnim == true) {
			System.out.println("El alimento es de origen animal");
		}
		else {
			System.out.println("El alimento no es de origen animal");
		}
		if (this.contVita.equals("A")) {
			System.out.println("El contenido en vitaminas es alto");
		}
		if (this.contVita.equals("M")) {
			System.out.println("El contenido en vitaminas es medio");
		}
		if (this.contVita.equals("B")) {
			System.out.println("El contenido en vitaminas es bajo");
		}
		if (this.contMine.equals("A")) {
			System.out.println("El contenido en minerales es alto");
		}
		if (this.contMine.equals("M")) {
			System.out.println("El contenido en minerales es medio");
		}
		if (this.contMine.equals("B")) {
			System.out.println("El contenido en minerales es bajo");
		}
	}
	
	//metodo que calcula el contenido energetico por gramo de un alimento
	public double calculaContenidoEnergetico () {
		
		//primero calculo el contenido por gramo de los diferentes elementos y despues los sumo
		double porcLipiGr = 9.4 /100 * this.contLipi;
		double porcProtGr = 5.3 / 100 * this.contProt;
		double porcHidrGr = 4.1 / 100 * this.contHidr;
		contCalo = porcLipiGr + porcProtGr + porcHidrGr;
		return contCalo;
	}
	
	//metodo que calcula si un alimento es recomendable para deportistas
	public boolean esRecomendableParaDeportistas () {
		boolean recomendado;
		if ((this.contProt >= 10 && this.contProt <= 15) && (this.contLipi >= 30 && this.contLipi <= 35) && this.contHidr >= 55 && this.contHidr <= 65) {
			recomendado = true;
		}
		else {
			recomendado = false;
		}
		
		//retorna boolean
		return recomendado;
	}
}
